package com.example

/**
 * 使用区间(Range)
 * Created by Walkud on 17/8/21.
 */
object Range {

    @JvmStatic
    fun main(array: Array<String>) {
        inInSide()
        println()
        inOutSide()
        println()
        inFor()
    }

    /**
     * 使用in 运算符检查某个数字是否在指定区间内
     */
    fun inInSide() {
        val x = 10
        var y = 9

        if (x in 1..y + 1) {
            println("x 在有效的区间内")
        }
    }

    /**
     * 使用in运算符检查某个数字在指定区域外
     */
    fun inOutSide() {
        val list = listOf("花生", "玉米")

        if (-1 !in 0..list.lastIndex) {
            println("-1 不在有效的范围区间")
        }

        if (list.size !in list.indices) {
            println("集合大小不在有效的范围区间")
        }
    }

    /**
     * 学习区间迭代
     */
    fun inFor() {
        for (x in 1..5) {
            println("x=$x")
        }

        println()

        //数列迭代1，3，5，7，9
        for (x in 1..10 step 2) {
            println("x=$x")
        }

        println()

        //数列迭代(倒序) 9，6，3，0
        for (x in 9 downTo 0 step 3) {
            println("x=$x")
        }

        println()

        //半开区间(不包含3) 1，2
        for (x in 1 until 3) {
            println("x=$x")
        }
        println()
    }
}